package com.smartscreen.attendancemanage.entity;

import com.baomidou.mybatisplus.annotation.*;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;

@TableName("attendance_rule")
public class AttendanceRule {
    @TableId(value = "rule_id", type = IdType.INPUT)
    private String ruleId;
    
    @TableField("name")
    private String name;
    
    @TableField("type")
    private String type;
    
    @TableField("start_time")
    private LocalTime startTime;
    
    @TableField("end_time")
    private LocalTime endTime;
    
    @TableField("repeat_days")
    private String repeatDays;
    
    @TableField("status")
    private String status;
    
    @TableField(value = "created_at", fill = FieldFill.INSERT)
    private LocalDateTime createdAt;
    
    @TableField(value = "updated_at", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedAt;
    
    // 关联对象
    @TableField(exist = false)
    private List<String> locationIds;

    // 构造函数
    public AttendanceRule() {}

    // Getters and Setters
    public String getRuleId() { return ruleId; }
    public void setRuleId(String ruleId) { this.ruleId = ruleId; }
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public String getType() { return type; }
    public void setType(String type) { this.type = type; }
    public LocalTime getStartTime() { return startTime; }
    public void setStartTime(LocalTime startTime) { this.startTime = startTime; }
    public LocalTime getEndTime() { return endTime; }
    public void setEndTime(LocalTime endTime) { this.endTime = endTime; }
    public String getRepeatDays() { return repeatDays; }
    public void setRepeatDays(String repeatDays) { this.repeatDays = repeatDays; }
    public String getStatus() { return status; }
    public void setStatus(String status) { this.status = status; }
    public LocalDateTime getCreatedAt() { return createdAt; }
    public void setCreatedAt(LocalDateTime createdAt) { this.createdAt = createdAt; }
    public LocalDateTime getUpdatedAt() { return updatedAt; }
    public void setUpdatedAt(LocalDateTime updatedAt) { this.updatedAt = updatedAt; }
    public List<String> getLocationIds() { return locationIds; }
    public void setLocationIds(List<String> locationIds) { this.locationIds = locationIds; }
}